import Vue from 'vue'
import App from './App.vue'

// 三级联动组件---全局组件
// 在此引入则只需引入一次 即可在多个组件中使用
import TypeNav from '@/components/TypeNav'
import Carousel from '@/components/Carousel'
import Pagination from '@/components/Pagination'

import 'element-ui/lib/theme-chalk/index.css';
import { MessageBox } from 'element-ui'

// 第一个参数：全局组件的名字 第二个参数：哪一个组件
Vue.component(TypeNav.name, TypeNav)
Vue.component(Carousel.name, Carousel)
Vue.component(Pagination.name, Pagination)

// 注册全局element-ui组件
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;

import router from '@/router'

// 引入仓库
import store from '@/store'

// 引入mockServe.js----mock数据
import '@/mock/mockServe'


// 引入swiper样式
import "swiper/css/swiper.css";
import "swiper/js/swiper"

// 统一接口api文件夹里面全部请求函数
// 统一引入
import * as API from '@/api'

import atm from '@/assets/1.gif'

// 引入插件
import VueLazyload from 'vue-lazyload'
// 注册插件
Vue.use(VueLazyload, {
    // 懒加载默认的图片
    loading: atm
})

// 引入表单校验插件
import '@/plugins/validate'

Vue.config.productionTip = false;

new Vue({
    render: h => h(App),
    // 全局事件总线$bus的配置
    beforeCreate() {
        Vue.prototype.$bus = this;
        Vue.prototype.$API = API;
    },
    router,
    store,
}).$mount('#app')